import axios from 'axios'

export default {
  // 开启命名空间
  namespaced: true,
  state: {
    // token: localStorage.getItem('token') || '' // 定义数据
    token: '',
    userInfo: {}
  },
  mutations: {
    updateToken(state, token) {
      // 只是存储到了 vuex 并未存储到 localStorage
      state.token = token
      // 将来会有很多数据都需要持久化存储, 所以每次操作起来非常麻烦
      // 而且数据一旦变化, 也需要持久化存储, 太麻烦了!
      // 借助一个插件, 帮我们自动化存储到本地!
      // localStorage.setItem('token', token)
    },
    updateUserInfo(state, userInfo) {
      state.userInfo = userInfo
    }
  },
  actions: {
    async getUserInfo(context) {
      // console.log(context)
      // console.log(this) // 指向的不是 Vue 实例对象, 而是 Store 实例对象
      // 所以 this.$http 不能使用
      // const { data: res } = await this.$http.get('/my/userinfo')
      const { data: res } = await axios.get('/my/userinfo')
      // console.log(res)
      context.commit('updateUserInfo', res.data)
    }
  },
  getters: {}
}
